// my-tags.js
const app = getApp()

Page({
  data: {
    tags: [],
    isLoading: true,
    emptyMessage: ''
  },

  onLoad() {
    this.loadUserTags()
  },

  // 页面显示时重新加载数据
  onShow() {
    this.loadUserTags()
  },

  // 加载用户标签列表
  loadUserTags() {
    this.setData({ isLoading: true })
    
    try {
      // 从全局数据获取标签列表，只保留第一个标签
      const allTags = app.globalData.tags || []
      
      // 添加详细调试信息，遍历打印每个标签的完整数据
      console.log('=== 标签数据详细调试 ===')
      console.log('标签总数:', allTags.length)
      allTags.forEach((tag, index) => {
        console.log(`标签${index}完整数据:`, tag)
        console.log(`标签${index}的ID:`, tag.id)
        console.log(`标签${index}的名称:`, tag.name)
        console.log(`标签${index}的音乐URL:`, tag.musicUrl)
        // 检查字段类型
        console.log(`标签${index}的ID类型:`, typeof tag.id)
        console.log(`标签${index}的名称类型:`, typeof tag.name)
        console.log('-------------------')
      })
      
      // 只使用第一个标签，如果没有则为空数组
      const tags = allTags.length > 0 ? [allTags[0]] : []
      console.log('最终使用的标签:', tags)
      
      this.setData({
        tags: tags,
        emptyMessage: tags.length === 0 ? '还没有绑定任何徽章\n快去绑定一个吧！' : ''
      })
    } catch (error) {
      console.error('加载标签列表失败:', error)
      wx.showToast({
        title: '加载失败，请重试',
        icon: 'none'
      })
    } finally {
      this.setData({ isLoading: false })
    }
  },

  // 导航到音乐配置页面
  goToMusicConfig(e) {
    const tag = e.currentTarget.dataset.tag
    
    wx.navigateTo({
      url: `../music-config/music-config?tagId=${tag.id}&tagName=${encodeURIComponent(tag.name)}`
    })
  },

  // 解绑标签
  unbindTag(e) {
    const tagId = e.currentTarget.dataset.tagId
    
    wx.showModal({
      title: '解绑确认',
      content: `确定要解绑徽章吗？\n解绑后将无法通过NFC触发音乐。`,
      confirmText: '确认解绑',
      cancelText: '取消',
      confirmColor: '#e64340',
      success: (res) => {
        if (res.confirm) {
          // 执行解绑操作
          this.performUnbind(tagId)
        }
      }
    })
  },

  // 执行解绑操作
  performUnbind(tagId) {
    try {
      // 调用app中的删除标签方法
      app.deleteUserTag(tagId)
      
      // 更新本地数据
      const tags = this.data.tags.filter(tag => tag.id !== tagId)
      this.setData({
        tags: tags,
        emptyMessage: tags.length === 0 ? '还没有绑定任何徽章\n快去绑定一个吧！' : ''
      })
      
      wx.showToast({
        title: '解绑成功',
        icon: 'success'
      })
    } catch (error) {
      console.error('解绑失败:', error)
      wx.showToast({
        title: '解绑失败，请重试',
        icon: 'none'
      })
    }
  },

  // 复制标签ID
  copyTagId(e) {
    const tagId = e.currentTarget.dataset.tagId
    
    wx.setClipboardData({
      data: tagId,
      success: () => {
        wx.showToast({
          title: 'ID已复制',
          icon: 'success'
        })
      }
    })
  },

  // 导航到绑定新标签页面
  goToBindTag() {
    wx.navigateTo({
      url: '../bind-tag/bind-tag'
    })
  },

  // 刷新标签列表
  refreshTags() {
    this.loadUserTags()
  }
})